package com.blog.controller;

import com.blog.util.QiniuUtils;
import com.blog.common.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

/**
 * 上传七牛云
 */
@RestController
@RequestMapping("/upload")
public class UploadController {

    @Autowired
    private QiniuUtils qiniuUtils;

    /**
     * 七牛云文件上传
     * @param file 文件
     * @return Result<String>
     */
    @PostMapping
    public Result<String> upload(@RequestParam("image") MultipartFile file){ //MultipartFile是spring中专门接受文件的类型
        //原始文件名称  拿到传进来的文件名称 比如aa.png
        String originalFilename = file.getOriginalFilename();
        //唯一的文件名称，存入数据库保证文件名不重复
        String filename= UUID.randomUUID().toString()+"."+ StringUtils.substringAfterLast(originalFilename,".");
        //上传文件上传到哪呢  七牛云 云服务器 按量付费 速度快 把图片放到离用户最近的服务器上
        //降低我们自身应用服务器的带宽消耗
        boolean upload = qiniuUtils.upload(file, filename);
        if (upload){
            return Result.success(QiniuUtils.url+filename);
        }
        return Result.error("上传失败");
    }
}
